layui.use(['form','layer','table','transfer','qsform'],function(){
	var $ = layui.jquery,
		table = layui.table,
		form = layui.form,
        transfer = layui.transfer,
        qsform = layui.qsform;

	// 角色列表
    var tableIns = table.render({
        elem: '#roleList',
        url : '../../roles/',
        method:'GET',
        cellMinWidth : 95,
        page : true,
        height : 'full-125',
        limit : 10,	// 注意：请务必确保 limit 参数（默认：10）是与你服务端限定的数据条数一致
        limits : [10,15,20,25],	// 分页选择
        id : 'roleListTable',
        cols : [[
            {type: 'checkbox', fixed:'left', width:50},
            {field: 'roleName', title: '角色', width:350},
            {field: 'roleCode', title: '角色代码', align:'center'},
            {field: 'status', title: '状态', align:'center', templet: function(d){
            	return '<input type="checkbox" name="status" lay-filter="roleStatus" '
            			+'lay-skin="switch" lay-text="正常|失效" '+(d.status==1?"checked":"")
            			+' qs-id='+d.id+'>';
            }},
            {title: '角色管理', align:'center', templet: function(d){
                    return '<button type="button" '
                        +' class="layui-btn layui-btn-sm" lay-submit lay-filter="roleMannage" '
                        +' qs-id='+d.id+'>角色管理</button>';
            }},
            {title: '操作', width:200, templet:'#roleListBar',fixed:'right',align:'center'}
        ]]
    });

    // 角色管理，利用穿梭树添加用户或者机构
    form.on('submit(roleMannage)', function(data){
        // 穿梭树渲染
        transfer.render({
            elem: '#test1'  // 绑定元素
            ,data: [
                {"value": "1", "title": "李白", "disabled": "", "checked": ""}
                ,{"value": "2", "title": "杜甫", "disabled": "", "checked": ""}
                ,{"value": "3", "title": "贤心", "disabled": "", "checked": ""}
            ]
            ,id: 'demo1' // 定义索引
        });
        return false;
    });


    // 是否置顶
    form.on('switch(roleStatus)', function(data){
        var index = layer.msg('修改中，请稍候',{icon: 16,time:false,shade:0.8});
        setTimeout(function(){
            layer.close(index);
            if(data.elem.checked){
	            updateStatus(data.elem.attributes["qs-id"].value, 1);
	            layer.msg("置顶成功！");
            }else{
	            updateStatus(data.elem.attributes["qs-id"].value, 0);
	            layer.msg("取消置顶成功！");
            }
        },500);
    })
    
    // 更新状态方法
    function updateStatus(id, val){
        $.ajax({
            url : "../../roles/",
            type : "PUT",
            data : {id : id, status : val}
        });
    }
    
    // 添加角色
    $(".addRoles_btn").click(function(){
        operateRole();
    })
    
    // 列表操作
    table.on('tool(roleList)', function(obj){
        var layEvent = obj.event,
            data = obj.data;
        if(layEvent === 'edit'){ // 编辑
        	operateRole(data);
        } else if(layEvent === 'del'){ // 删除
            layer.confirm('确定删除此文章？',{icon:3, title:'提示信息'},function(index){
                $.ajax({
                    url : "../../roles/"+data.id,
                    type : "DELETE",
                    success : function(data) {
                        tableIns.reload();
                        layer.close(index);
                    }
                });
            });
        } else if(layEvent === 'look'){ // 预览
            layer.alert("此功能需要前台展示，实际开发中传入对应的必要参数进行文章内容页面访问")
        }
    });
    
    // 角色的操作（新增、修改）
    function operateRole(roleObj){
    	var index = layui.layer.open({
    		title : roleObj ? "编辑文章" : "添加文章",
            type : 2,
            content : "roleAdd.html",
//            btn: ['提交', '关闭'],
//            yes: function(index, layero){
//                //按钮【按钮一】的回调
//            },
//            btn2: function(index, layero){
//                //按钮【按钮二】的回调
//                //return false 开启该代码可禁止点击该按钮关闭
//            },
//            cancel: function(){ 
//                //右上角关闭回调
//                //return false 开启该代码可禁止点击该按钮关闭
//            },
//            btnAlign: 'c',
            success : function(layero, index){
            	var body = layui.layer.getChildFrame('body', index);
                if(roleObj){
                    qsform.setDataByQsName(body, roleObj)
                    form.render();
                }
            }
    	});
    	layui.layer.full(index);
/*        // 改变窗口大小时，重置弹窗的宽高，防止超出可视区域（如F12调出debug的操作）
        $(window).on("resize",function(){
            layui.layer.full(index);
        })*/
    }
    
    // 检索功能
    $(".search_btn").on("click",function(){
        table.reload("roleListTable",{
            page: {
                curr: 1 // 重新从第1页开始
            },
            where: {
                roleName: $(".searchVal").val()  // 搜索关键字
            }
        })
    });
});